POV-Ray : Newsgroups : povray.general : Small is NOT BEAUTIFUL : Small is NOT BEAUTIFUL Server Time
4 Aug 2024 20:17:57 EDT (-0400)
  Small is NOT BEAUTIFUL  
From: Frank 'Sputnik' Rothfuß
Date: 11 Feb 2003 00:26:51
Message: <3E48899F.44352FFE@computermuseum.fh-kiel.de>
Hi,

In the thread 'Maximum possible extents for POV-Ray scene coordinates?',
started 8 Jan 2003, the practical limits for coordinates were told to
be 1e-6 .. 1e+6. This doesn't apply to SIZES of objects: As a rule of
thumb,
       a POV-unit should not cover more than one screen.

To show this, I've prepared a simple scene: a sphere with a diameter of
1 POV-unit, a 1x1x2 box, and a cylinder. The scenes below were rendered
with the official windows POV-Ray versions 3.1g and 3.5. Four images,
named MinSize_##_%%%%.jpg (##=POV-Ray version, %%%%=scale factor(s)),

are posted to povray.binaries.images with the same header. They show
visible geometric distortions at 1E-5, even if the 1-unit-diameter
sphere doesn't fill the whole screen. POV-Ray 3.5 has *GREAT* problems
with shadows even at a scale of 0.1 -- especially look at edges of the
box, intersections of box and cylinder, the area where the sphere touches

the box, and their shadows. Of course floating point calculations can't
be perfect, but why is 3.1g THREE ORDERS OF MAGNITUDE better than 3.5.?
I think this is a bug that should be corrected.

   Sputnik



//=== Start of 'Small is NOT BEAUTIFUL' demo scene 1 =====
================

//+SP8 +EP8 +D +A0.1 +AM2 +R3 +FN +OMinSize_35_1_to_1E-11 +W1024 +H768

#macro Scene ( Row, Col, Size )

  union {
    box { -0.5, <1.5, 0.5, 0.5> }
    cylinder { -y, y, 0.1 }
    sphere { <0.7, 1, 0.2>, 0.5 }
    texture {
      pigment { color rgbt <1,1,1,0.4> }
      finish { ambient .3 }
      }
    rotate <-40, 20, -5>
    translate <Col*4-10.5, 6.9-Row*3.5, 220>
    scale Size
    }

  #local SizeExp = floor(log(Size)/log(10)+1E-6);
  #local SizeMant = Size/pow(10,SizeExp);
  text {
    ttf "timrom.ttf"
    concat ( "Size=", str(SizeMant,3,1), "E", str(SizeExp,0,0) )
    0.01, 0
    texture { pigment { color rgb 1 } finish { ambient 1 } }
    scale 0.55
    translate <Col*4-11.5, 5.5-Row*3.5, 220>
    }

  #end//macro Scene

text {
  ttf "timrom.ttf"
  concat ( "POV-Ray", str(version,4,1) )
  0.01, 0
  texture { pigment { color rgb 1 } finish { ambient 1 } }
  scale <0.6, 0.6, 1>
  translate <-1.5, 5.2, 220>
  }

Scene ( 1, 1, 1    )
Scene ( 1, 2, 0.1  )
Scene ( 1, 3, 0.01 )
Scene ( 1, 4, 0.001)
           

Scene ( 2, 1, 1E-4 )
Scene ( 2, 2, 1E-5 )
Scene ( 2, 3, 1E-6 )
Scene ( 2, 4, 1E-7 )
           

Scene ( 3, 1, 1E-8 )
Scene ( 3, 2, 1E-9 )
Scene ( 3, 3, 1E-10)
Scene ( 3, 4, 1E-11)

light_source { <-3,6,-1>*10000 rgb 1 }
camera { location 0 look_at z angle 4 }
global_settings { max_trace_level 10 }

//=== End of 'Small is NOT BEAUTIFUL' demo scene 1 ======
=================



//=== Start of 'Small is NOT BEAUTIFUL' demo scene 2 =====
================

//+SP8 +EP8 +D +A0.1 +AM2 +R3 +FN +OMinSize_35_1E-1 +W1024 +H768

union {

  box { -0.5, <1.5, 0.5, 0.5> }
  cylinder { -y, y, 0.1 }
  sphere { <0.7, 1, 0.2>, 0.5 }

  texture {
    pigment { color rgbt <1,1,1,0.4> }
    finish { ambient .3 diffuse .7 }
    }

  rotate <-40, 20, -5>
  translate <-0.5, -0.3, 5>
  scale 0.1 // only small artefacts: 0.1 (POV 3.5); 0.0001 (POV 3.1)

  }

light_source { <-3,6,-1>*10000 rgb 1 }
camera { location 0 look_at z angle 40 }
global_settings { max_trace_level 10 }

//=== End of 'Small is NOT BEAUTIFUL' demo scene 2 ======
=================



-- 

-------------------------------------

e-mail: fr### [at] computermuseumfh-kielde
-------------------------------------


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.